அட்டவணையில் செருகுதல்
MySQL இல் ஒரு அட்டவணையை நிரப்ப, "INSERT INTO" அறிக்கையைப் பயன்படுத்தவும்.
எடுத்துக்காட்டு
"customers" அட்டவணையில் ஒரு பதிவைச் செருகவும்:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
let sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
மேலே உள்ள குறியீட்டை "demo_db_insert.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:
C:\Users\Your Name>node demo_db_insert.js
இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:
Connected!
1 record inserted
முக்கிய குறிப்புகள்:
- நெடுவரிசை வரிசை: VALUES இல் உள்ள மதிப்புகள் நெடுவரிசைகளின் வரிசையுடன் பொருந்த வேண்டும்
- தரவு வகைகள்: செருகப்படும் மதிப்புகள் நெடுவரிசை தரவு வகைகளுடன் பொருந்த வேண்டும்
- சரம் மதிப்புகள்: சரம் மதிப்புகள் ஒற்றை மேற்கோள்களில் இருக்க வேண்டும்
பல பதிவுகளைச் செருகுதல்
ஒன்றுக்கு மேற்பட்ட பதிவுகளைச் செருக, மதிப்புகளைக் கொண்ட ஒரு வரிசையை உருவாக்கி, sql இல் ஒரு கேள்விக்குறியைச் செருகவும், இது மதிப்பு வரிசையால் மாற்றப்படும்:
INSERT INTO customers (name, address) VALUES ?
எடுத்துக்காட்டு
"customers" அட்டவணையை தரவுகளால் நிரப்பவும்:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
let sql = "INSERT INTO customers (name, address) VALUES ?";
let values = [
['John', 'Highway 71'],
['Peter', 'Lowstreet 4'],
['Amy', 'Apple st 652'],
['Hannah', 'Mountain 21'],
['Michael', 'Valley 345'],
['Sandy', 'Ocean blvd 2'],
['Betty', 'Green Grass 1'],
['Richard', 'Sky st 331'],
['Susan', 'One way 98'],
['Vicky', 'Yellow Garden 2'],
['Ben', 'Park Lane 38'],
['William', 'Central st 954'],
['Chuck', 'Main Road 989'],
['Viola', 'Sideway 1633']
];
con.query(sql, [values], function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
மேலே உள்ள குறியீட்டை "demo_db_insert_multiple.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:
C:\Users\Your Name>node demo_db_insert_multiple.js
இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:
Connected!
Number of records inserted: 14
முடிவு பொருள்
ஒரு வினாவை இயக்கும் போது, ஒரு முடிவு பொருள் திருப்பி அனுப்பப்படும்.
முடிவு பொருள் வினா அட்டவணையை எவ்வாறு பாதித்தது என்பதைப் பற்றிய தகவல்களைக் கொண்டுள்ளது.
மேலே உள்ள எடுத்துக்காட்டிலிருந்து திருப்பி அனுப்பப்பட்ட முடிவு பொருள் இப்படித் தெரிகிறது:
{
fieldCount: 0,
affectedRows: 14,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '\'Records:14 Duplicated: 0 Warnings: 0',
protocol41: true,
changedRows: 0
}
பண்புகளின் மதிப்புகளை இப்படி காட்டலாம்:
எடுத்துக்காட்டு
பாதிக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைத் திருப்பி அனுப்பவும்:
console.log(result.affectedRows)
இது இந்த முடிவை உருவாக்கும்:
14
| பண்பு | விளக்கம் |
|---|---|
| affectedRows | செருகப்பட்ட, புதுப்பிக்கப்பட்ட அல்லது நீக்கப்பட்ட வரிசைகளின் எண்ணிக்கை |
| insertId | AUTO_INCREMENT நெடுவரிசைக்கு செருகப்பட்ட ID |
| changedRows | UPDATE அறிக்கையால் மாற்றப்பட்ட வரிசைகளின் எண்ணிக்கை |
| warningCount | வினாவால் உருவாக்கப்பட்ட எச்சரிக்கைகளின் எண்ணிக்கை |
செருகப்பட்ட ID ஐப் பெறுதல்
தானாக அதிகரிக்கும் id புலம் உள்ள அட்டவணைகளுக்கு, முடிவு பொருளைக் கேட்பதன் மூலம் நீங்கள் இப்போது செருகிய வரிசையின் id ஐப் பெறலாம்.
குறிப்பு:
செருகப்பட்ட id ஐப் பெற முடியும் வகையில், ஒரே ஒரு வரிசை மட்டுமே செருகப்பட வேண்டும்.
எடுத்துக்காட்டு
"customers" அட்டவணையில் ஒரு பதிவைச் செருகி, ID ஐத் திருப்பி அனுப்பவும்:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
let sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted, ID: " + result.insertId);
});
});
மேலே உள்ள குறியீட்டை "demo_db_insert_id.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:
C:\Users\Your Name>node demo_db_insert_id.js
இது உங்களுக்கு இதைப் போன்ற ஒன்றைத் திருப்பித் தரும்:
1 record inserted, ID: 15
மேம்பட்ட செருகும் நுட்பங்கள்
மாறிகள் மூலம் செருகுதல்
மாறிகளைப் பயன்படுத்தி மதிப்புகளைச் செருகவும்:
const name = "John Doe";
const address = "123 Main Street";
const sql = "INSERT INTO customers (name, address) VALUES (?, ?)";
con.query(sql, [name, address], function (err, result) {
if (err) throw err;
console.log("Record inserted with ID: " + result.insertId);
});
பிழை கையாளுதலுடன் செருகுதல்
சரியான பிழை கையாளுதலுடன் செருகவும்:
con.query("INSERT INTO customers (name, address) VALUES (?, ?)",
["John", "123 Street"],
function (err, result) {
if (err) {
console.error("Error inserting record:", err.message);
return;
}
console.log("Record inserted successfully. ID:", result.insertId);
}
);
ஒரே நேரத்தில் பல செருகுதல்கள்
ஒரே நேரத்தில் பல்வேறு அட்டவணைகளில் செருகவும்:
// Insert into multiple tables
const customerSQL = "INSERT INTO customers (name, email) VALUES (?, ?)";
const orderSQL = "INSERT INTO orders (customer_id, amount) VALUES (?, ?)";
con.query(customerSQL, ["John", "john@example.com"], function (err, result) {
if (err) throw err;
const customerId = result.insertId;
// Now insert into orders table
con.query(orderSQL, [customerId, 100.50], function (err, result) {
if (err) throw err;
console.log("Customer and order created successfully");
});
});
செருகுதலுக்கான சிறந்த நடைமுறைகள்
பாதுகாப்பு
- SQL injection தடுக்க கேள்விக்குறி இடம் கொண்டவைகளைப் பயன்படுத்தவும்
- பயனர் உள்ளீட்டை எப்போதும் சரிபார்க்கவும்
- தரவு சுத்திகரிப்பு செயல்பாடுகளைப் பயன்படுத்தவும்
- பிழை செய்திகளை வெளிப்படையாகக் காட்ட வேண்டாம்
செயல்திறன்
- பெரிய செருகுதல்களுக்கு பல வரிசை செருகலைப் பயன்படுத்தவும்
- தேவையற்ற செருகுதல்களைத் தவிர்க்கவும்
- அடிக்கடி செருகுதல்களுக்கு இணைப்புக் குளத்தைப் பயன்படுத்தவும்
- பெரிய தரவு செட்களுக்கு தொகுதி செருகலைப் பயன்படுத்தவும்
தரவு ஒருமைப்பாடு
- தரவுத்தள கட்டுப்பாடுகளை மதிக்கவும்
- மாறாத தரவைச் செருகுவதை உறுதிப்படுத்தவும்
- வெளிநாட்டு விசை உறவுகளைப் பராமரிக்கவும்
- தனித்துவமான கட்டுப்பாடுகளைச் சரிபார்க்கவும்
முழுமையான எடுத்துக்காட்டு
அனைத்து செருகும் நுட்பங்களையும் உள்ளடக்கிய முழுமையான எடுத்துக்காட்டு:
const mysql = require('mysql');
// Create connection
const con = mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
database: "company_db"
});
// Connect to MySQL
con.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err.message);
return;
}
console.log('Connected to MySQL database');
// Single record insertion
const singleRecordSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES (?, ?, ?, ?)";
const singleValues = ["John", "Doe", "john.doe@company.com", 50000.00];
con.query(singleRecordSQL, singleValues, (err, result) => {
if (err) {
console.error('Error inserting single record:', err.message);
con.end();
return;
}
console.log(`Single record inserted with ID: ${result.insertId}`);
// Multiple records insertion
const multipleRecordsSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES ?";
const multipleValues = [
["Jane", "Smith", "jane.smith@company.com", 55000.00],
["Bob", "Johnson", "bob.johnson@company.com", 60000.00],
["Alice", "Brown", "alice.brown@company.com", 52000.00]
];
con.query(multipleRecordsSQL, [multipleValues], (err, result) => {
if (err) {
console.error('Error inserting multiple records:', err.message);
con.end();
return;
}
console.log(`Multiple records inserted. Affected rows: ${result.affectedRows}`);
// Show all employees
con.query("SELECT * FROM employees", (err, results) => {
if (err) {
console.error('Error fetching employees:', err.message);
con.end();
return;
}
console.log('\nAll employees:');
results.forEach(employee => {
console.log(`ID: ${employee.id}, Name: ${employee.first_name} ${employee.last_name}, Email: ${employee.email}, Salary: ${employee.salary}`);
});
// Close connection
con.end((err) => {
if (err) {
console.error('Error closing connection:', err.message);
return;
}
console.log('\nConnection closed');
});
});
});
});
});
பயிற்சி
சரியான பண்பு பெயரை தேர்வு செய்யவும்.
முடிவு பொருளின் ______ பண்பு ஒரு வினாவால் எத்தனை வரிசைகள் பாதிக்கப்பட்டன என்பதைக் காட்டுகிறது.